arch linux配置IP(静态或动态) 您所在的位置:网站首页 arch wifi连接 wpa arch linux配置IP(静态或动态)

arch linux配置IP(静态或动态)

2023-05-24 10:18| 来源: 网络整理| 查看: 265

arch linux配置IP(静态或动态)¶

在arch linux系统中,配置IP地址主要通过:

netctl

Systemd Networkd服务

备注

以下案例网络设备命名已经采用了 通过udev重命名网络设备名 ,所以有线网络接口为 eth0 / 无线网络接口 wlan0

配置静态IP¶ netctl 方法¶

netctl 是用于控制systemd服务网络管理器的命令行工具,如果已经安装了 netctl 则有一些案例位于 /etc/netctl/examples/ 目录下:

ethernet-dhcp

ethernet-static

首先通过 ip link 命令获得主机网卡接口名。在 ThinkPad X220笔记本 会显示如下:

Intel 82579LM 千兆有线网卡: enp0s25

Intel Advanced-N 6205无线网卡: wlp3s0

(可选)对于网络配置,如果识别的网卡命名不是默认约定的 eth0 和 wlan0 会带来一些困扰。所以,如果需要可以先采用 通过udev重命名网络设备名 。

备注

我在 ThinkPad X220上运行Arch Linux(U盘) 没有采用 netctl 而是采用 Systemd Networkd服务 ,所以这段只做记录

复制配置案例:

sudo cp /etc/netctl/examples/ethernet-static /etc/netctl/eth0

修订 /etc/netctl/eth0 :

/etc/netctl/eth0¶ Description='A basic static ethernet connection' Interface=eth0 Connection=ethernet IP=static Address=('192.168.6.199/24') Gateway=('192.168.6.200') DNS=('192.168.6.200' '192.168.7.200')

激活每次自动启动:

sudo netctl enable eth0

最后启动网卡:

sudo netctl start eth0

既然是静态分配IP,我们可以关闭和禁止dhcp服务:

sudo systemctl stop dhcpcd sudo systemctl disable dhcpcd Systemd Networkd服务 方法(推荐)¶

使用 Systemd进程管理器 的 Systemd Networkd服务 配置静态IP地址的方法更为通用

编辑创建一个网络profile: /etc/systemd/network/eth0.network :

/etc/systemd/network/eth0.network¶ [Match] Name=eth0 [Network] Address=192.168.6.199/24 Gateway=192.168.6.200 DNS=192.168.6.200 DNS=192.168.7.200

如果已经设置过 netctl 则需要停止并移除 netctl ,如果需要还可停止 dhcpcd

sudo systemctl disable [email protected] sudo pacman -Rns netctl sudo systemctl stop dhcpcd sudo systemctl disable dhcpcd

启动并激活 Systemd Networkd服务 和 systemd-resolved (需要这个服务来解析DNS):

激活 systemd-networkd 和 systemd-resolved¶ sudo systemctl enable systemd-networkd sudo systemctl start systemd-networkd sudo systemctl enable systemd-resolved sudo systemctl start systemd-resolved 使用wpa_supplicant连接无线网络¶

安装 rfkill 和 wpa_supplicant

sudo pacman -S rfkill wpa_supplicant

检查网卡状态:

rfkill list

如果无线网卡状态是 Soft blocked 则启动它:

rfkill unblock wifi

配置office的无线 /etc/wpa_supplicant/wpa_supplicant.conf :

/etc/wpa_supplicant/wpa_supplicant.conf¶ ctrl_interface=/var/run/wpa_supplicant # 配置Country Code支持5G Hz无线连接 country=CN # ap_scan支持扫描隐藏的SSID ap_scan=1 network={ ssid="SSID-OFFICE" key_mgmt=WPA-EAP eap=PEAP phase1="peaplabel=0" phase2="auth=MSCHAPV2" identity="user_name" password="user_password" }

复制 wpa_supplicant.service 配置:

sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service

修订 /etc/systemd/system/wpa_supplicant.service 指定接口:

ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0

激活 wpa_supplicant.service

sudo systemctl enable wpa_supplicant.service

安装 dhclient

sudo pacman -S dhclient

配置 /etc/systemd/system/dhclient.service :

/etc/systemd/system/dhclient.service¶ [Unit] Description= DHCP Client Before=network.target [Service] Type=simple ExecStart=/sbin/dhclient wlan0 -v #ExecStop=/sbin/dhclient wlan0 -r [Install] WantedBy=multi-user.target

然后激活服务:

sudo systemctl enable dhclient.service

注意,我的主机有2个接口,我的配置要求是:

有线网卡配置静态IP地址,并且提供DNS解析,但是取消掉默认网关(默认路由从无线网络)

无线网络使用DHCP获得IP,但是忽略掉DHCP分配的DNS(DNS采用有线网络内网的 私有云DNS服务(dnsmasq)和共享因特网(ICS) )

这里需要配置 dhclient 但是忽略掉DHCP分配的DNS,通常方式是修订 /etc/dhcp/dhclient.conf ,设置和有线网卡静态IP地址一致的DNS配置:

supersede domain-name-servers 192.168.6.200;

不过,由于我使用了简化的 dhclient.service 配置,并没有指定配置文件,所以采用手工修订 /etc/resolv.conf ,然后执行以下命令将文件设置为不可修改:

chattr +i /etc/resolv.conf

这样就不会被DHCP错误修改DNS配置

参考¶

How To Configure Static And Dynamic IP Address In Arch Linux

Linux Make Sure /etc/resolv.conf Never Get Updated By DHCP Client



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有